# 2024.06.19——比特Python自学笔记
# 顺序语句、条件语句、循环语句

# 顺序语句
# 按照顺序执行的语句称为顺序语句
print(1)
print(2)
print(3)
# 默认情况下Python代码的执行顺序是从上到下依次执行

# 条件语句
# 条件语句能够表达“如果……否则……”这样的语义，这构成了计算机中基础的逻辑判定
# 条件语句也叫分支语句，表示了接下来的逻辑可能有几种走向
# 条件语句就是根据一个具体条件的成立与否，来决定接下来的逻辑走向

# 条件语句的语法格式
# 在Python中条件语句的判断语句不需要加括号()，而是通过冒号:来体现
# 条件语句中的内容通过缩进来展现，在Python中缩进代表的是C/C++中的语句块{}
# 如下所示
expression = 1
if expression == 2:
    print(1)  # if语句内需要执行的第一条指令
    print(1)  # if语句内需要执行的第二条指令
print(2)  # if语句外需要执行的指令
# 在Python中的双分支语句中同样使用if……else……
if expression == 3:
    print(3)
else:
    print(4)
# 在Python中的多分支语句也是通过if……else if……else……
# 与C/C++不同的是，Python中的else if为elif
if expression == 5:
    print(5)
elif ~expression == 6:
    print(6)
else:
    print(7)
# 在Python中，if语句的格式同样是if和elif需要加判断语句，else不需要判断语句

# 缩进和代码馈
# 缩进可以是4个空格，也可以是1个tab
# 代码块指的是一组放在一起执行的代码
# Python中的缩进是非常重要的，不能乱写
# 在Python中，缩进表示代码块，如在if，else，elif，while，for……等语句中需要跟上代码块的部分，都是需要使用缩进来表示的
# 在C++/JAVA中，对于代码的缩进是没有强制要求的
# 因此缩进具体怎么写都不影响代码的编译运行结果
# 如果缩进没有好好的同一风格来写，也是对可读性比较影响
# Python中的代码块还可以进行嵌套
a = 1
if a > 0:
    print("a > 0")  # 第一级缩进
    if a == 1:  # 第一级缩进
        print("a == 1")  # 第二级缩进
    else:  # 第一级缩进
        print("a > 1")  # 第二级缩进
else:
    print("a < 0")  # 第一级缩进
# 当有多级条件嵌套时，当前的语句属于哪一个代码块，完全取决于缩进的级别
# 当嵌套层数太多时，语句所对应的代码级别不太容易观察，因此相比于C/C++/JAVA中的{}，多层次缩进更容易出现错误

# 空语句——pass
# 在C/C++/JAVA中，分号为一条语句的结束标志，当一条语句中只有一个分号时，这条语句被称为空语句
# 如 while(input ==1){;}
# 在Python中则通过pass来表示一条空语句，如：
if a == 1:
    pass
else:
    print("a != 1")
# 在Python中没有开关语句，只有if语句
# if语句结构——单分支语句
# if 条件: # 将C/C++/JAVA 中的括号()改为冒号
# 缩进 代码块 # 将C/C++/JAVA 中的花括号{}改为缩进
# 语句外代码 # 当语句与if的缩进层级相同时，该语句则会被Python认为是语句外的代码
# if语句结构——双分支语句
# if 条件1:
# 缩进 代码块1
# else:
# 缩进 代码块2
# if语句结构——多分支语句
# if 条件1:
# 缩进 代码块1
# elif 条件2:
# 缩进 代码块2
# else:
# 缩进 代码块3

# 缩进层级
# if 条件1: # 无缩进，缩进层级设为0
#   if 条件2: # 一次缩进（大小为4个空格大小或者一个tab大小），缩进层级为1
#       if 条件3: # 两次缩进（大小为8个空格大小或者两个tab大小），缩进层级为2
# ……
# 以此类推，缩进次数越多，缩进层级越高，因此在多层缩进的代码中很容易因为代码块的缩进层级不对而导致错误

# 循环语句
# 能够反复执行的语句称为循环语句
# 循环语句的三要素——循环对象语句（循环初始值）、条件语句（循环开始与结束的判定条件）、递进语句（从初始值开始逼近循环结束的语句）
# 没有递进语句的循环被称为死循环，需要手动干预结束
# while循环
# 通过关键字while执行的循环语句
# for循环
# 通过关键字for执行的循环语句

# 语法格式——while循环
# while 条件:
# 缩进 循环体 # 循环体与while的缩进层级相差1
# 语法格式——for循环
# for 循环变量 in 可迭代对象:
#   循环体
# 在Python中的for循环与其它语言的for循环不同，
# Python中的for循环没有初始化语句、条件语句、递进语句
# 循环中的可迭代对象指的是一种特殊的变量~内部包含了很多其他的值，循环体在执行时，可以将可迭代对象中的值一个一个的取出来

# continue和break
# continue——立即结束当前这次循环，进入下次循环
# break——立即结束整个循环

# 循环语句小结
# 两种循环语句——while循环和for循环
# 语句格式
# while 循环条件:
# 缩进 循环体
# for 循环对象 in 可迭代对象:
# 缩进 循环体
# 目前学习的可迭代对象——range(起始值, 结束值, 步长)
# range是提供一个前闭后开的整数迭代对象，步长省略时默认为1,
# break——立即结束循环
# continue——立即结束当前循环
